package com.foreknow.demo22;

/**
 * 订单类
 */
public class Order {
  private String orderId;//订单的编号
  private double total;//总额：需要计算,所以不应该写到构造器中初始化
  private OrderItem[] items;//订单列表

  public Order(String orderId) {
    this.orderId = orderId;
    this.items = new OrderItem[3];
  }

  public String getOrderId() {
    return orderId;
  }

  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }

  public double getTotal() {
    //调用计算总额的方法
    calTotal();
    return total;
  }

  public void setTotal(double total) {
    this.total = total;
  }

  public OrderItem[] getItems() {
    return items;
  }

  /**
   * 指定一个订单项OrderItem并通过下标保存到数组中
   * @param item
   * @param i
   */
  public void setItems(OrderItem item,int i) {
    this.items[i] = item;
  }

  /**
   * 计算总额的方法
   * 总额 = 数量*单价
   */
  public void calTotal() {
    double total = 0;
    //1.要先遍历数组items，每遍历一次就要获取到数组中的一个OrderItem对象，然后就可以获取到数量以及单价了。
    for(int i = 0;i<items.length;i++){
      total+=items[i].getNum()*items[i].getPrice();
    }
    //2.要将总额赋值给类变量total
    this.total = total;
  }
}
